查看原文
其他

赶在2018年前推荐30个最火爆开源库

杨守乐 程序员小乐 2019-05-10

分享编程技能、互联网技术、生活感悟、打造干货分享平台,将总结的技术、心得、经验分享给大家,这里不只限于技术!还有职场心得、生活感悟、以及面经点击上方 "杨守乐" ,选择“置顶公众号”,第一时间送达!



由于微信不能带外链如何不方便你可以选择阅读原文查看。

这些是自2017年3月以来我最喜欢的30个新的Android库。他们中的一些还没有做好生产准备,但是使用它们可能会有很多乐趣。我希望你喜欢这些。

这里没有特别的顺序:

1. Matisse

这是一个美丽的本地图像和视频选择器。主要功能:

  • 选择包括JPEG,PNG,GIF和包括MPEG,MP4;

  • 应用自定义主题,包括两个内置的主题,

  • 不同的图像加载器,

  • 定义自定义过滤规则,

  • 在Activity和Fragment内完全操作。

Libraries:https://github.com/zhihu/Matisse/wiki

2. Spruce Android动画库

Spruce是一个轻量级的动画库,帮助编排屏幕上的动画。有了这些不同的动画库,开发人员需要确保每个视图都在适当的时候动画。Spruce可以帮助设计师请求复杂的多视图动画,而不是让开发人员对原型感到畏惧。

Libraries:https://github.com/willowtreeapps/spruce-android

3. MaterialChipsInput

Chips是在材料设计中呈现。

在小块中表示复杂的实体,如联系人。Chips可以包含照片,文字,规则,图标或联系人等实体。

MaterialChipsInput是Android的该组件的实现。库提供了两个视图:ChipsInput and ChipView.。

Libraries:https://github.com/pchmn/MaterialChipsInput

4. Grav

这个库允许创建基于点的多个动画。看看 - 你可以很容易地做出光滑美丽的动画。README文件包含很多例子,所以你可以在这里查看。

Libraries:https://github.com/glomadrian/Grav

5. Litho

Litho不是一个库,它是一个框架。一个非常强大的框架,以声明的方式构建用户界面。它是由Facebook开发者开发的,所以即使你不想尝试,仍然值得观察和跟踪一个开发过程。

主要功能包括:

  • 使用声明式API来定义UI组件。您只需根据一组不可变的输入描述UI的布局,其余的框架就可以完成。

  • 异步布局:Litho可以提前测量和布局您的UI,而不会阻塞UI线程。

  • 视图展平:Litho使用Yoga 进行布局,并自动减少UI包含的ViewGroup数量。

  • 细粒度回收:任何组件(如文本或图像)都可以在UI中的任何位置进行回收和重用。

Libraries:https://github.com/facebook/litho

6. Adaptable Bottom Navigation

前段时间Google更新了Material Design指南,并介绍了底部的导航栏,作为我们的应用程序中遵循的几个优秀的UI模式之一。他们还将实现添加到设计支持库。

自适应底部导航可以很容易地BottomNavigationView从支持库中取代。它是以如何ViewPager和TabLayout工作的方式实施的。这是Buffer小组的简短解释:

如前所述,在Android支持库中使用底部导航视图时,可能会有许多样板代码用于切换视图。正因为如此,我们从TabLayout的setupWithViewPager()方法中获得了灵感,并创建了一个自定义的ViewSwapper组件,该组件可以附加到底部导航视图以简化视图显示的管理。

你可以阅读更多关于Github。有一个相当全面的文档和解释,为什么它被实现(提示:整洁架构🚀)。

Libraries: https://github.com/bufferapp/AdaptableBottomNavigation

7. PatternLockView

该库允许您轻松快速地在您的应用中实现模式锁定机制。它非常易于使用,并且有大量的自定义选项可用来更改此视图的功能和外观以满足您的需求。

它也支持RxJava 2视图绑定,所以如果你是反应式编程(就像我一样),当用户绘制模式时,你可以得到一串更新。

该自述充满了例子,所以很容易下手库。

Libraries:https://github.com/aritraroy/PatternLockView

8. Isometric

这是一个开源库,帮助绘制等距形状。在我看来,它是这个清单中最酷的图书馆之一,它让我想起了纪念碑谷游戏。

该库支持绘制多个形状,路径和复杂结构,如下面的示例。

Libraries:https://github.com/FabianTerhorst/Isometric

9. UltraViewPager

我们可以把这个库作为一个ViewPager扩展来封装许多功能,主要是为多页面切换场景提供统一的解决方案。

UltraViewPager支持:

  • 水平滚动和垂直滚动,

  • 在一个多视图 ViewPager

  • 循环切换视图。例如,如果在a中显示3个视图ViewPager,则应在第三个视图之后切换回第一个视图,

  • 自动滚动功能(实现定时器使用Handler),

  • 设置最大高度和最大宽度,

  • 设置纵横比,

  • 说明我们目前的视图(圆圈和图标),

  • 内置两种页面转换动画。

  • 这个库也有很好的文档。

Libraries:https://github.com/alibaba/UltraViewPager

10. InfiniteCards

这个库有助于实现UI卡,然后用一个漂亮的动画切换它们。

Libraries:https://github.com/BakerJQ/Android-InfiniteCards

11. SlidingRootNav

这是一个图书馆,我们可以把它看作是一个DrawerLayout ViewGroup,在内容视图下隐藏一个抽屉,然后可以移动,使抽屉可见。REAMDE相当全面,值得一试。

Libraries:https://github.com/yarolegovich/SlidingRootNav

12. PasscodeView

这只是一个可以输入密码的视图。

Libraries:https://github.com/hanks-zyh/PasscodeView

13. MusicWave

该库允许将声音表示为渐变色可视化。

Libraries:https://github.com/akshay2211/MusicWave

14. ShadowImageView

这个库可以帮助你添加更有意义的阴影到你的图像。根据自述文件,它是
更精美的阴影效果,在一些特殊的场景中用来增强用户体验。
而且,它很容易使用。

Libraries:https://github.com/yingLanNull/ShadowImageView

15. PolygonDrawingUtil

这是一个高效的Android实用工具类,用于绘制正方形的多边形Canvas。我们可以指定:

  • 边数(≥3),

  • 中心坐标,

  • 外半径(中心到顶点),

  • 圆角半径,

  • 多边形旋转,

  • 填充/Paint。

Libraries:https://github.com/stkent/PolygonDrawingUtil

16. Tiny

这是名单上的第二个框架。它负责图像压缩,这是相当强大的。另外,它
使用异步线程池来压缩图像,并在压缩完成时将结果发布在主线程中。

Libraries:https://github.com/Sunzxyong/Tiny

17. ParticleTextView

该库提供了一个自定义TextView小部件,可以使用各种动画效果和配置属性从粒子创建文本。

Libraries:https://github.com/Yasic/ParticleTextView

18. CropIwa

这是一个高度可配置的图像裁剪小部件。该库具有模块化架构,使其具有高度可配置性。有关如何配置的信息,CropIwaView请参阅Github上的Wiki。

Libraries:https://github.com/steelkiwi/cropiwa

19. Project Condom

这是一个精简的库,Context在将其传递给第三方SDK之前,将其裸露在您的Android项目中。它旨在防止第三方SDK从常见的不良行为,这可能会损害您的应用程序的用户体验。

这里是解释:

在其他应用程序中大量启动进程(在第三方推送SDK中很常见),导致应用程序启动缓慢,并且在低端到中端设备上显着滞后。这种行为在具有类似SDK的应用程序之间产生了连锁反应,大大加剧了整体设备的性能。

Libraries:https://github.com/oasisfeng/condom

20. AppMethodOrder

这个库允许你跟踪所有的函数调用顺序。该项目是有据可查的,你可以找到详细的手册如何使用它。唯一的限制是,它是用中文书写的,但是你可以随时在浏览器中点击翻译成英文,享受这个伟大的项目。

Libraries:https://github.com/zjw-swun/AppMethodOrder

21. Android DebugKit

这是一个有趣的开源库。它允许您创建和使用特殊的悬停调试工具,来触发您在应用程序中定义的操作。这些行为显然可以在运行时触发,因此可以在反馈写入或测试电话屏幕时使用。

Libraries:https://github.com/hulab/debugkit

22. Aesthetic

这是一个新的库,仍然在测试版,但它确实很酷 - 它动态地改变你的主题与Rx的支持!据作者说,这是一个快速和易于使用的即插即用动态主题引擎。由Rx提供支持,适用于Android应用程序。

该文件是非常好的,全面的,绝对值得检查。

Libraries:https://github.com/afollestad/aesthetic

23. EasyCalendar

这是一个简单的自定义日历小部件。主要功能包括:

  • 自定义布局的标题,

  • 自定义布局的日期,

  • 显示或隐藏分隔线的日期,

  • 显示或隐藏溢出日期,

  • 听取日期的看法点击。

文档是全面的,图书馆易于使用。

Libraries:https://github.com/shichaohui/EasyCalendar

24. SimpleRatingBar

这个库提供了两个评级栏:

  • BaseRatingBar - 没有任何动画,

  • ScaleRatingBar - 具有渐进和缩放动画。

你可以在下面看到他们的gif:

Libraries:https://github.com/ome450901/SimpleRatingBar

25. Magellan

这个库被广告为Android的最简单的导航库,但你需要检查是否值得使用它。 
主要特点:

  • 导航和调用goTo(screen)方法一样简单,

  • 你完全控制了后台,

  • 转换会自动为您处理。

它有全面的维基和所有需要的解释。

Libraries:https://github.com/wealthfront/magellan

26. ViewPagerAnimator

ViewPagerAnimator是一个新的轻量级,但功能强大的Android的ViewPager动画库。它被设计为在用户在ViewPager中的页面之间导航时动画任意值,并且将精确地跟随手指的运动。虽然图书馆本身可能对某些人有用,但是出版这个图书馆的主要目的是为了展示一些很棒的API细节,当使用即将推出的Java 8扩展时,这些细节真的会出现。提供了Java 7和Java 8的示例项目。

它由Mark Allison编写,您可以在他的Styling Android博客上获得更多信息。

Libraries:https://github.com/StylingAndroid/ViewPagerAnimator

27. BlockCanaryEx

这是一个开源库,它有助于在应用程序被阻止时在代码中查找繁重的方法。它基于BlockCanary。

Libraries:https://github.com/seiginonakama/BlockCanaryEx

28. PaletteImageView

这是相当酷的开源库。它为您的图像添加阴影,但阴影的颜色是主要的图像颜色。

Libraries:https://github.com/DingMouRen/PaletteImageView

29. RecyclerRefreshLayout

这是一个打开相机快门的刷新动画。在我看来确实值得检查一下,特别是在README里有一个数学分析,该如何实现这个效果!

Libraries:https://github.com/dinuscxj/ShootRefreshView

30. SlimAdapter

这是一种无需编写Adapter的方法ViewHolder。主要功能包括:

  • ViewHolders,

  • 无反射,

  • 流畅和简单的API,

  • 多种类型的适配器,

  • 支持Kotlin,

  • 支持简单的DiffUtil。

Libraries:https://github.com/MEiDIK/SlimAdapter

到这就结束了。我希望你喜欢这篇文章!如果我没有提到在今年最新发布的其他伟大的Libraries(开源库),请在下面的评论中告诉我。让我们把这份清单放在一起!

如果您喜欢我的文章,请不要忘记推荐给其他人。

如何您想进技术群和大牛们交流,关注公众号在后台回复 “加群”,或者 “学习” 即可

作者:杨守乐

链接:http://blog.csdn.net/xiaole0313/article/details/78926083

著作权归作者所有。本文已获得授权。

如果您觉得不错,请别忘了分享到您的朋友圈让更多的人看到!! 您的举手之劳,就是对我最好的支持,非常感谢!

每日英文


Sometimes,God does not give you what you want,it is not because you do not deserve it but for the better. 

有时候,上天没有给你想要的,不是因为你不配,而是你值得更好的。


乐乐有话说    


努力的意义:不要当父母需要你时,除了泪水,一无所有。不要当孩子需要你时,除了惭愧一无所有。不要当自己回首过去,除了蹉跎,一无所有。



推荐阅读

2017年阿里、腾讯、百度、华为、京东、搜狗和滴滴最新面试题汇集

老程序员们“拒绝管理岗位,活跃在开发一线”的真实故事
一位10年Java工作经验的架构师聊Java和工作经验
老程序员总结的40条开发小技巧


看完本文有收获?请转发分享给更多人
关注「杨守乐」,提升编程技能

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存